Peer-to-peer applications become more and more popular since a wide range of data stored on computers on the edge of the Internet can now be accessed. Computers that stored and provided data only for local access and in addition provided means for retrieving data from Internet servers may serve today as a data base for other computers and simultaneously may receive data not only from Internet servers but also from other remote computers when executing peer-to-peer applications. This widens the pool of accessible data tremendously.
Below, the term peer or node or peer node is used for an electronic device—for example a computer, a workstation or a PDA (personal digital assistant) but not limited to—that can run a peer-to-peer application. Therefore, such node should be able to access a network in order to exchange information with other nodes.
Gnutella is currently one of the most prominent representative of unstructured peer-to-peer applications, see “The Gnutella Protocol Specification v0.4 Document Revision 1.2”, retrieved on the Internet http://www9.limewire.com/developer/gnutella_protocol—0.4.pdf and accessed Nov. 15, 2002. These applications are called unstructured as nodes peer with other nodes in a random fashion. Searching in unstructured peer-to-peer network essentially is a random probing as resources such as files or other services are made available on arbitrary nodes in the network, see “Search and Replication in Unstructured Peer-to-Peer Networks”, Qin Lv et al., in 16th ACM International Conference on Supercomputing, June 2002. The main advantages of these systems are their simplicity, for example the protocols used are very simple, and their dynamics in a sense that nodes can appear and disappear at a high rate. Another advantage is that search queries can be almost arbitrary complex and includes keyword-searching, substring-matching etc.
Peer-to-peer applications that include file exchange protocols—like Gnutella—Gnu V0.4 dynamically establish an “overlay” network to exchange information. When a peer is started, it tries to peer with other peers using a request/accept protocol. The requesting peer sends a “connect request” to another peer node. If this other peer authorizes the connection it answers with a “connect accept” and the two parties establish a adjacency. Then they can start exchanging information that get passed on to other peers.
FIG. 1 illustrates the way connectivity is achieved within an exemplary network comprising at least two peer groups 1 and 2—also called clusters. Each peer group 1 or 2 comprises peer nodes A, B, C, respectively D and E. Reference 3 indicates some physical interconnection (wire-bound, wireless) between peer groups 1 and 2. Arrows indicate an already established peering connection which is rather a logical interconnection than a physical interconnection. Such connection is established by having one of the peers send a connect request message to the other peer and the other peer having accepted this connect request message with an accept message according to the protocol of the peer-to-peer application.
In FIG. 1a), node C is peered with nodes A and B, as well as node D is peered with node E. Nodes C and D are prone to peering as C gets to know about D. Therefore C sends a connect request to D and D accepts by sending an accept message back to C.
According FIG. 1b), C and D are now peered and C relays messages to D, the messages issued by A and B, whereas D relays messages to C, the messages issued by E. In the following, A and D would like to peer as A gets to know about D. Therefore A sends a connect request to D and D accepts by sending an accept message back to A.
According to FIG. 1c), A and D are now peered in addition to the already existing peering connections. However, there are now two logical peering connections existing on the physical interconnecting link 3. These two logical connections were established by means of at least four messages crossing the interconnection 3.
This overlay network—that is a term for the network of logical connections—is an ad-hoc network that does not rely on an infrastructure. One well-known problem is how to bootstrap the peering mechanism, that is how a peer can find addresses of other peers to peer with. Usually two types of techniques are used to solve this problem. One solution consists of the peer connecting to a server located at a well-known address. This server maintains a list of peers' addresses that are communicated to the peer. Another solution is for the peer to maintain itself a list of other peer it peered with and use addresses from this list.
In account of the technique, peering is done based on a list of addresses without taking into the actual network infrastructure or the affinity between peers. Therefore the resulting overlay network is typically totally de-correlated from the physical network. This can lead to a very inefficient use of the network resources and poor performances of the file search protocol using this network.
Another example shown in FIG. 2 demonstrates an example how a physical network is flooded with peer-to-peer application messages in order to establish adjacencies between peer nodes. Three clusters 1, 2, 4 are shown. Big circles represent physical network nodes (e.g. routers, gateways), whereas small circles represent peer nodes. Dotted lines represent physical interconnections between physical network nodes, whereas straight lines represent logical interconnections between peer nodes. As can be derived from FIG. 2, peer node A is communicating with peer node F only via peer nodes B to E, while they are adjacent in the physical network. Note that in this example links joining cluster 1 to cluster 2 and cluster 1 to cluster 3 will easily get congested.
Structure of peer-to-peer applications thus result in a limited scalability due to brute-force flooding and a clear misfit of the overlay network topology with the underlying Internet topology representing the physical connections.
Flooding the underlying physical network with messages is not only a problem when looking for other peers to peer with but also when querying for information, such as data files, once an overlay network is established.
FIG. 3 introduces such exemplary query process according to the protocol of a peer-to-peer application: FIG. 3a) is similar to FIG. 1a) and shows the establishment of a peering connection between nodes C and D.
According to FIG. 3b), node A now issues a query request “Looking for vivaldi.mp3”. C forwards this query request to B and D, D forwards this request to D. Arrows between two peer nodes pointing only in one direction indicate the transmitted query requests.
E is supposed to have what A is looking for, so E sends a confirmation message to D, see FIG. 3c). D knows that the confirmation is related to a request coming from C so sends the confirmation message to C. C knows that the confirmation message is related to a request coming from A so sends the confirmation message to A. Then, A contacts E using other means, e.g. HTTP, to get the file.
EP 1 229 442 A2 discloses a peer-to-peer protocol that is meant to be uniform for many different peer-to-peer applications. There are different layers defined, such as a platform core layer, a platform services layer, and a platform application layer. So called rendezvous peers can maintain dynamic indexes for entities in the peer-to-peer platform including peers or peer groups. Rendezvous peers are considered to be peers executing additional functions.
“Idebtifying and Controlling P2P/File-Sharing Applications”, retrieved from the Internet http://www.allot.com/html/solutions_notes_kazaa.shtm and accessed Oct. 17, 2002, “Packeteer: Another take on limiting P2P traffic”, by Ann Harrison, retrieved from the Internet http://www.nwfusion.com/newsletters/fileshare/2002/01297785.html and accessed Oct. 17, 2002, “Four Steps to Application Performance across the Network”, by Packeteer™ Inc., retrieved from the Internet http://www.packeteer.de and accessed Oct. 17, 2002, each disclose a device that detects and identifies different types of traffic. In a second step, network and application behaviour—especially bandwidth consumption—is analyzed. According to the analysis, bandwidth is allocated to different applications.
EP 1 075 112 A1 describes a PNNI hierarchical network, whereby one of the peers represents a peer group as a peer group leader. The peer group leader has a memory for storing peer group topology data.
Several approaches to limit peer-to-peer traffic were introduced that are highly structured: “A scalable Content-Addressable Network”, by S. Ratnasamy et al., in ACM SIGCOMM, pages 161-172, August 2001; “Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems”, by A. Rowstron and P. Druschel, in IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), pages 329-350, November 2001; “Chord: A scalable Peer-to-peer Lookup Service for Internet Applications”, by I. Stoica et al., in Proceedings of the 2001 ACM SIGCOMM Conference, pages 149-160, August 2001. These approaches tightly control how and on which nodes information is stored. Also, peering of nodes is not random and the resulting overlay networks are often congruent to the underlying Internet topology. The disadvantage is that these approaches do not cope well with very high dynamics, i.e. a rapidly changing user population makes these systems unstable. Furthermore, these systems excel in exact-match queries but have some weaknesses in key-word based queries and substring queries.
Therefore, it is desired to have network traffic controlling means provided while having peers causing such traffic remaining unchanged.